package com.rayboo.example.collections.list;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * ArrayList 示例
 *
 * @author ray
 * @since 2019/07/25
 *
 * <p>ArrayList类实现List接口，它基于Array数据结构。由于其提供的功能和灵活性，它被广泛使用。
 * 大多数开发人员选择ArrayList over Array，因为它是传统java数组的一个很好的替代品。
 * ArrayList是List 接口的可调整大小的数组实现。它实现了所有可选的列表操作，并允许所有元素，包括null。
 *
 * <p>https://beginnersbook.com/2013/12/java-arraylist/
 */
public class ArrayListExample {

    public static void main(String args[]) {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("Steve");
        arrayList.add("Tim");
        arrayList.add("Lucy");
        arrayList.add("Pat");
        arrayList.add("Angela");
        arrayList.add("Tom");

        //displaying elements
        System.out.println(arrayList);

        //Adding "Steve" at the fourth position
        arrayList.add(3, "Steve");

        //displaying elements
        System.out.println(arrayList);

        // Convert a LinkedList to ArrayList
        System.out.println("\n======Convert a LinkedList to ArrayList=====");

        LinkedList<String> linkedList = new LinkedList<String>();
        linkedList.add("Harry");
        linkedList.add("Jack");
        linkedList.add("Tim");
        linkedList.add("Rick");
        linkedList.add("Rock");

        List<String> list = new ArrayList<String>(linkedList);

        for (String str : list){
            System.out.println(str);
        }
    }
}
